package com.hotels.management.domain;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.hotels.management.base.domain.BaseEntity;

@Entity
@Table(name = "ORDERS")
public class Order extends BaseEntity {

	private static final long serialVersionUID = 6338608716556113065L;

	private Client client;

	private Room room;

	private Date checkinDate;
	private Date checkoutDate;

	private List<FurnitureOrder> furnitureOrders;

	private Double roomCost;
	private Double VAT;

	private Double levy;

	private Double tax;

	private Double overallCost;

	@ManyToOne
	@JoinColumn(name = "CLIENT_ID")
	public Client getClient() {
		return client;
	}

	public void setClient(Client client) {
		this.client = client;
	}

	@ManyToOne
	@JoinColumn(name = "ROOM_ID")
	public Room getRoom() {
		return room;
	}

	public void setRoom(Room room) {
		this.room = room;
	}

	@Column(name = "CHECKIN_DATE")
	public Date getCheckinDate() {
		return checkinDate;
	}

	public void setCheckinDate(Date checkinDate) {
		this.checkinDate = checkinDate;
	}

	@Column(name = "CHECKOUT_DATE")
	public Date getCheckoutDate() {
		return checkoutDate;
	}

	public void setCheckoutDate(Date checkoutDate) {
		this.checkoutDate = checkoutDate;
	}

	@OneToMany(mappedBy = "order")
	public List<FurnitureOrder> getFurnitureOrders() {
		return furnitureOrders;
	}

	public void setFurnitureOrders(List<FurnitureOrder> furnitureOrders) {
		this.furnitureOrders = furnitureOrders;
	}

	@Column(name = "ROOM_COST")
	public Double getRoomCost() {
		return roomCost;
	}

	public void setRoomCost(Double roomCost) {
		this.roomCost = roomCost;
	}

	@Column(name = "VAT")
	public Double getVAT() {
		return VAT;
	}

	public void setVAT(Double vAT) {
		VAT = vAT;
	}

	@Column(name = "LEVY")
	public Double getLevy() {
		return levy;
	}

	public void setLevy(Double levy) {
		this.levy = levy;
	}

	@Column(name = "TAX")
	public Double getTax() {
		return tax;
	}

	public void setTax(Double tax) {
		this.tax = tax;
	}

	@Column(name = "OVERALL_COST")
	public Double getOverallCost() {
		return overallCost;
	}

	public void setOverallCost(Double overallCost) {
		this.overallCost = overallCost;
	}
}
